/*
	函数版学生管理系统
	写一个系统能够查看\新增学生\删除学生
    1. 查看所有学生
	2. 新增学生
	3. 删除学生 
	4. 退出
*/

package main

import (
	"fmt"
	"os"
)

var allStudents = make(map[int]*student)

type student struct {
	id   int
	name string
}

func newStudent(id int, name string) *student {
	return &student{
		id:   id,
		name: name,
	}
}

func main() {
	for {
		fmt.Println("欢迎来到学生管理系统，请选择功能。")
		fmt.Println(`		
		1. 查看所有学生
		2. 新增学生
		3. 删除学生 
		4. 退出
		`)
		var choice int
		fmt.Scanln(&choice)

		switch choice {
		case 1:
			viewAllStudents()
		case 2:
			addNewStudent()
		case 3:
			delStudent()
		case 4:
			os.Exit(1)
		default:
			fmt.Println("输入不正确！")
		}

	}
}

func viewAllStudents() {
	fmt.Println("这里是浏览功能！")
	for k, v := range allStudents {
		fmt.Printf("学号:%d 姓名:%s\n", k, v.name)
	}
}

func addNewStudent() {
	fmt.Println("这里是新增功能！")
	var id int
	var name string
	fmt.Println("请输入学生学号")
	fmt.Scanln(&id)
	fmt.Println("请输入学生姓名")
	fmt.Scanln(&name)
	newStu := newStudent(id, name)
	allStudents[id] = newStu

}

func delStudent() {
	fmt.Println("这里是删除功能！")
	fmt.Println("请输入删除学生学号")
	var id int
	fmt.Scanln(&id)
	delete(allStudents, id)
}
